Java Generics - 类本身的子类?
全部标签 这可能是一件坏事,如CanparentandchildclassinJavahavesameinstancevariable?中所讨论的那样.(如果更改父变量名称怎么办?那么它将不再被隐藏。)但是,我仍然很好奇静态/非静态不同的变量是否会相互隐藏。一方面,我希望它们是相同的变量名,因此会被隐藏,但另一方面,编译器似乎可能会根据静态来区分两者。 最佳答案 根据Java语言规范:如果该类声明了一个具有特定名称的字段,则该字段的声明被认为隐藏了父类(superclass)和该类的超接口(interface)中具有相同名称的任何和所有可访问
以下可以吗?(请记住,我没有编写类的主体,也没有编写接口(interface);-))abstractclassSuperClassimplementsSuperInterfaceclassSubClassextendsSuperClassimplementsSubInterface或者这通常被认为是不好的做法?让我感到奇怪的是,以下内容不起作用:ListmyList;...for(SuperInterfacesi:myList){...} 最佳答案 不好也不坏。SubClass在这里实现了SuperInterface和SubInt
我有一个类如下:publicclassMyConverter{publicTconvert(Objecto,Stringtypeidentifier,Tdummy){...dosomeconversionssuchasajavaarraytoanArrayListorviceversa...basedonatypeidentifiersyntaxsimilartoClass.getName()butwhich...embedsinformationaboutgenericsubtypes}}并希望能够做这样的一般事情:int[]ar={...};ArrayListdummy=null;
我正在维护一些Java8代码,如下所示:ClassEntity{protectedModeltheModel;publicEntity(){init();}protectedvoidinit(){this.theModel=newModel();}}ClassModel{}ClassSubModelextendsModel{}main{EntitynewEntity=newEntity(){@Overrideprotectedvoidinit(){this.theModel=newSubModel();}};}代码目前可以正确编译和运行,但我现在需要更新它。我的问题是:在newEnti
我(在某处)读到,当子类被垃圾回收时,不能保证调用父类的finalize(),这是否意味着大多数开发人员会覆盖finalize()在子类中调用super.finalize()? 最佳答案 Finalize不会自动为父类(superclass)调用。因此,如果您重写finalize,确保父类(superclass)得到清理的正确方法是protectedvoidfinalize(){try{//dosubclasscleanup}finally{super.finalize();}}请参阅这篇引用文章http://www.ibm.com
我目前正在Java中进行基于文本的冒险,目的是将其用作测试平台,以尝试从我正在阅读的这本Java书中学到的新东西。我现在正在尝试声明一个子类的实例(因为玩家被编写脚本来找到它)。父类是Item,它有两个子类:Weapon和Armour。但是,无论我尝试以何种方式声明它,我使用的IDE(Eclipse)都会标记该行并出现以下错误:NoenclosinginstanceoftypeItemisaccessible.MustqualifytheallocationwithanenclosinginstanceoftypeItem(e.g.x.newA()wherexisaninstanceo
我有这个条件publicclassA{publicaction(){System.out.println("ActiondoneinA");}}publicclassBextendsA{publicaction(){System.out.println("ActiondoneinB");}}当我创建B的实例时,该操作将只执行B中的操作,因为它会覆盖父类(superclass)的操作。问题是在我的项目中,父类(superclass)A已经被使用了太多次,我正在寻找一种方法,在某些条件下,当我创建A的实例时,它会检查它是否为真,用B替换自己。publicclassA{publicA(){i
我有以下问题:我有一个类,试图使用反射来调用其OWN保护方法之一,但出现异常:java.lang.IllegalAccessException:访问方法被拒绝有人可以阐明这一点吗?基类:publicabstractclassBaseReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){//invokethecorrecteventmethod:Methodmethod;try{method=this.getClass().getDeclaredMethod("
Dosubclassesinheritprivatefields?这个问题解决了同样的问题,但我不太明白它如何满足下面(看似)矛盾的情况。http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html表示“子类不继承其父类的私有(private)成员。”这意味着它既不继承私有(private)实例变量也不继承私有(private)方法,对吧?但是,如果它从其父级继承公共(public)访问器方法,这将如何工作?它返回一个它不知道存在的实例变量?此外,我的计算机科学书籍(Baron的APComputerScienceA)
我真的应该知道这一点,但出于某种原因我不明白以下内容。我的抽象类包含以下抽象方法:protectedabstractRuleDTOcreateRowToBeCloned(RuleDTOruleDTO);我还有另外一个类如下:EvaluationRuleDTOextendsfromRuleDTO然后在我的抽象类的子类中,我有以下实现,由于“必须覆盖或实现父类(superclass)型方法”而不允许:protectedEvaluationRuleDTOcreateRowToBeCloned(EvaluationRuleDTOruleDTO){但是,以下是允许的:protectedEvalu